import { StoryboardScene } from '../../../types/document'

/**
 * 视口状态 - 定义时间线视图的显示区域和缩放状态
 */
export interface ViewportState {
  scale: number           // 缩放比例 (像素/秒)
  offsetX: number         // 水平偏移量
  width: number           // 视口宽度
  height: number          // 视口高度  
  totalDuration: number   // 总时长
}

/**
 * 场景块数据 - Canvas中渲染的场景块信息
 */
export interface SceneBlockData {
  scene: StoryboardScene
  x: number              // 开始位置
  width: number          // 宽度
  height: number         // 高度
  y: number              // 垂直位置
  startTime: number      // 开始时间
  duration: number       // 持续时间
}

/**
 * 拖拽状态 - 场景拖拽重排序状态
 */
export interface DragState {
  isDragging: boolean
  draggedSceneId: string | null
  dragStartX: number
  dragCurrentX: number
  insertIndex: number     // 插入位置索引
  originalIndex: number   // 原始位置索引
}

/**
 * 缩放级别配置
 */
export interface ZoomLevel {
  level: number
  name: string
  description: string
  scale: number           // 像素/秒
}

/**
 * 时间线统计信息
 */
export interface TimelineStatistics {
  totalDuration: number
  sceneCount: number
  averageDuration: number
  longestScene: { title: string; duration: number } | null
  shortestScene: { title: string; duration: number } | null
}